Data transmission between computes as well as internal operation and storage system of all digital communication systems, such as communication, radar, telecontrol and telemetering, and digital computer can be summarized as the model shown in FIG. 1. The source encoder is used to improve validity of transmission; channel encoder is used to resist various noise and interference during transmission. By increasing artificially redundant information, the system is made to be capable of correcting error automatically so as to ensure the reliability of digital transmission. With the development of the wireless digital communication and the advent of all kinds of services with high speed and burst, there is increased demand for error-correction coding technology.
The initial research of error-correction code is mainly focused on the linear block code based on algebraic theory, followed by a series of good codes such as hamming code, cyclic code, BCH code and RS code. In convolutional code appeared in the 50s, register is introduced in the process of encoding to increase the correlation between code elements, thus higher coding gain than that of the block code can be obtained with the same order of complexity. With the appearance of decoding algorithms of the convolutional code (Viterbi algorithm), it gained intensive research and application. In 1993, C. Berrou and etc. in France offers Turbo code, striding forward to the limitation of encoding performance. Under the inspiration of successful Turbo code, another kind of encoding with similar characteristic and capability regains people's attention, that is, the low density parity check codes (which can be referred to as LDPC code). LDPC code is a kind of linear block code which can be defined by sparse parity check matrix or bipartite graph. It was originally discovered by Gallager, so it is called Gallager code. Through decades' dreariness, with the development of computer hardware and associated theories, MacKay and Neal rediscovered LDPC code and proved that it has performance of approximating Shannon limit. Latest research indicates that LDPC code has the following characteristics: low complexity of decoding, linear time encoding, the performance of approximating Shannon limit, parallel decoding, and better performance than Turbo code under the condition of long code.
LDPC code is a linear block code based on sparse parity check matrix, and it is the sparse characteristic of LDPC that make it possible to realize encoding/decoding with low complexity and make LDPC code move toward practical application. The above-mentioned Gallager code is a regular LDPC code (regular ldpcc), but Luby and Mitzenmacher generalized Gallager code and offered irregular LDPC code (irregular ldpcc). The original code offered by Gallager has regular code structure whose parity check matrix is a sparse matrix with the same number of 1 at each row or each column. M. G. Luby thought that if the number of non-zero elements in each row or column in the check matrix is allowed to change, with the sparse characteristic of the matrix being guaranteed, the decoding algorithm of the code would still be applicable; moreover, the performance of the code can be largely improved, reaching, or even surpassing that of Turbo code. This is because that if the corresponding left node and right node of the bipartite graph have appropriate degree distribution in the code structure, a waveform effect, which will greatly improve the decoding performance, will exist in decoding. Irregular code is such a code that allows the same nodes have different orders of low density coding, yet the original code offered by Gallager is correspondingly called regular code.
Based on unit matrix and its cyclic shift matrix, LDPC code has become research emphasis in current academic circles because of its randomly variable length, simple implementation, and the guaranteed invariable degree distribution and girth (referred to the shortest length of a circle) distribution in expanding. But, the currently constructed LDPC code based on unit matrix and its cyclic shift matrix does not fully take into account the influence of girth and the relationship between code length and girth, so the method for building a LDPC code with as small girth as possible and as few number of girth as possible is far from comprehensive. Therefore, the drop of BER curve dramatically slows down at high signal to noise ratio, and phenomenon of error floor often happens, resulting in decreased code performance. How to eliminate the error-floor phenomenon of LDPC code, accelerate the dropping speed of BER curve, and improve the performance of the LDPC code at high SNR, are the urgent problems to be solved.
The research object of the present invention is mainly irregular codes. Irregular codes are low-density parity-check codes with totally different row weight and column weight of parity check matrix, and column weight of the information bits of the parity check matrix is also different. Regular codes are low density parity check codes with the same row weight and column weight of the parity check matrix, or low density parity check codes with the same row weight and column weight of the information bits when the corresponding check bits maintain constant structure. In relevant literatures, the second case of regular code, the low-density parity-check codes are also called semi-regular codes. The degree distribution of the basic matrix is consistent with that of the parity check matrix.
For irregular codes, since there are many non-zero elements in the parity check matrix, it is hard to ensure that the girth of the parity check matrix can reach 8, but it is easy to ensure that the girth of the parity check matrix can reach 6. It is desirable in the present invention to eliminate the cycles with length of 8 as far as possible under the basic condition that the girth of the parity check matrix reaches 6, thus error floors will be eliminated further; for low density parity check codes with specific code rate and multiple code lengths, the method can ensure FER curves with different code length will not intersect when FER is larger than 10-4, therefore, good irregular low density parity check codes can be designed.